<?php
/* ###############################################################################
 *
 * $Id: menu.php 55 2014-10-28 08:33:17Z expertsoftware.i@gmail.com $
 *
 * システム名
 *   PHP Web フレームワーク [Ponzu]
 *
 * 機能
 *   メニュー ライブラリ
 *
 * バージョン
 *   0.0.0_0
 *
 * ライセンス
 *   LGPL v2.0
 *
 * 履歴
 *   2014/07/01 K.Sonohara
 *     新規作成。
 *
 * ###############################################################################*/

/**
  * メニューアイテムクラス
  */
class MenuItem {
  var $id; //id
  var $title; //タイトル
  var $url = null;   //URL
  var $target = null; //ターゲット
  var $ssl; //id
  var $menus = array(); //子メニュー

  /**
   * コンストラクタ
   * @access public
   * @param id id
   * @param t タイトル
   * @param u URL
   * @param r ターゲット
   */
  function __construct($id, $t, $u=null, $r=null, $ssl=false) {
    $this->id = $id;
    $this->title = $t;
    $this->url = $u;
    if ($r) {
      $this->target = $r;
    }
    $this->ssl = $ssl;
  }

  function printHTML($dir="",$panel=false) {
    if ($this->url != "-") {
      $target = "";
      $url = $this->url;
      if ($this->target != null) {
        $target = 'target="' . $this->target . '" ';
      }
      if ($this->url != null) {
        $url = $this->url;
      } else {
        $a = SITE_URL;
        if ($this->ssl) {
          $a = SITE_SSL_URL;
        }
        if ($dir != "-/") {
          $url = $a . $dir . $this->id . ".php";
        } else {
          $url = $a . $this->id . ".php";
        }
      }

      if ($panel) {
        printHTML('<a ' . $target . 'href="' . $url . '">');
      } else {
        printHTML('<a ' . $target . 'href="' . $url . '">' . $this->title . '</a>');
      }
    } else {
      $target = "";
      $url = $this->url;
      if ($this->target != null) {
        $target = 'target="' . $this->target . '" ';
      }
      $a = SITE_URL;
      if ($this->ssl) {
        $a = SITE_SSL_URL;
      }
      $url = $a . $this->id . "/";

      if ($panel) {
        printHTML('<a ' . $target . 'href="' . $url . '">');
      } else {
        printHTML('<a ' . $target . 'href="' . $url . '">' . $this->title . '</a>');
      }
    }
  }

  /**
   * メニュー追加
   * @access public
   * @param id id
   * @param t タイトル
   * @param u URL
   * @param r ターゲット
   */
  function addMenu($id, $t, $u=null, $r=null,$ssl=false) {
    $this->menus[$id] = new MenuItem($id, $t, $u, $r,$ssl);
  }
}

class RootMenuItem extends MenuItem {
  function __construct($id="root", $t="ホーム", $u=null, $r=null) {
    parent::__construct($id, $t, $u, $r);
  }
}

$header_menus = new RootMenuItem();
$main_menus = new RootMenuItem();
$footer_menus = new RootMenuItem();

function indexHTML($level=null) {
  if (!defined('PAGE_LEVEL'))
    define("PAGE_LEVEL", "-");
  if (!defined('PAGE_ID'))
    define("PAGE_ID",    $level);
  if (!defined('PAGE_TITLE')) {
    global $main_menus;
    define("PAGE_TITLE", $main_menus->menus[$level]->title);
  }
 if (!defined('PAGE_CAPTION'))
    define("PAGE_CAPTION", true);
  define("PAGE_SIDE", true);
  define("PAGE_HTML", "INDEX_HTML");
  define("PANEL_IMAGE_EXT", ".png");

  doHTML();
}

function INDEX_HTML() {
	printHTML('</div>');
	printHTML('</div>');
	printHTML('</div>');

	printHTML('<div class="body_off">');
  printHTML('<div class="container">');
	printHTML('<div class="col-xs-12 text-left">');
	printHTML('</div>');

  global $main_menus;
  foreach ($main_menus->menus[PAGE_ID]->menus as $id => $menu) {
    try {
     	printHTML('<div class="col-xs-4 text-center">');
    	$menu->printHTML(PAGE_ID . "/",true);
    	printHTML('<img class="panel" alt="" src="' . SITE_URL . 'images/' . PAGE_ID . '/' . $id . PANEL_IMAGE_EXT . '" />');
      printHTML('<h3>');
    	printHTML($menu->title);
      printHTML('</h3>');
    	printHTML('</a>');
    	printHTML('</div>');
    } catch(Exception $e) {
    }
  }

	printHTML('</div>');
	printHTML('</div>');
}
?>
